{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "from sklearn.cluster import AgglomerativeClustering\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn import datasets\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn import metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "irisDs = datasets.load_iris()\n",
    "data = irisDs.data\n",
    "target = irisDs.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [],
   "source": [
    "pca = PCA(n_components = 2) # bidimensional\n",
    "reducedData = pca.fit_transform(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXd4VNXWh999zpmaRknovYqKICCI\nKKJYQcECKjYsiHL1eu31E3tv16teFdFrx4YFUVBQQBCQJoiA9BZaQghp0+fs748JIZOZ9EkmIft9\nHh4y5+yzz0qeZJ191l7rt4SUEoVCoVA0LLR4G6BQKBSK2kc5f4VCoWiAKOevUCgUDRDl/BUKhaIB\nopy/QqFQNECU81coFIoGiHL+CoVC0QCJifMXQrwrhMgQQvxVyvkhQogcIcTKwn8TY3FfhUKhUFQN\nI0bzvAe8BnxQxpj5UsrzYnQ/hUKhUFSDmDh/KeWvQogOsZjrEKmpqbJDh5hOqVAoFEc8y5cv3y+l\nTCtvXKxW/hVhoBBiFbAbuEtKuaaswR06dGDZsmW1Y5lCoVAcIQghtldkXG05/xVAeyllvhBiGPAN\n0LXkICHEeGA8QLt27WrJNIVCoWh41Eq2j5QyV0qZX/j1D4BFCJEaZdwkKWU/KWW/tLRy31oUCoVC\nUUVqxfkLIVoIIUTh1/0L75tVG/dWKBQKRSQxCfsIIaYAQ4BUIUQ68DBgAZBSvgmMAiYIIQKAG7hM\nKi1phUKhiBuxyvYZU8751wilgioUCoWiDqAqfBUKhaKCyOBupG8V0iyItynVpjZTPRUKhaJeIs1c\n5MF/gm8FCAvIADLxFrTE8fE2rcqolX8tsH3tThZOW8qerfvibYpCoagC8uCd4FsGeEHmAx7Ifx3p\n+SneplUZtfKvQVx5bh4a8Qzrl2xCtxoEvH5OPL8f9390K4ZF/egVivqADGaBbxHgL3HGjSx4B2E/\nKx5mVRu18q9BXr1lMusWb8Dr9uHKceHz+Pl9+nKmPPN1vE1TKBQVRR4EUcpizdxfu7bEEOX8a4iA\nP8C8zxbi9wbCjnvdPr57o/6+KioUDQ69HdGDJAZYT65ta2KGcv41RMAfJBg0o55z53tq2RqFQlFV\nhLBA0kOAvdhRC4gkROKEeJlVbZTzryHsThsdjmkbcVxogr5nHBcHixQKRVXRnCMRTd4F2+lgHAXO\nKxGp3yH0FvE2rcqoXcca5PZJN3L3GY8R8AYI+ANY7RZsThvjn78q3qYpFIpKIqz9ENZ+8TYjZijn\nX4Mc1b8rb//5It+8NoNtq3fQY2A3RvzjHBo3S4m3aQqFooGjnH8N06JDM256YWy8zVAoFIowVMxf\noVAoGiDK+SsUCkUDRDl/hUKhaIComH8VyNqTzS+fLCD3QB59zziOXkOOobBXjUKhUNQLlPOvJEtn\n/sGjF7+AaUr8Xj/f/OcHep/ek0e+ugtd1+NtnkKhqANIGQDvPAimg6UHWE6ocwtE5fwrgc/r58nL\n/o3X7Ss65inwsvKX1cz7bCGnX35KHK1TKBR1ARnci8y6DGQOSF9IAtroBk3eRwhHvM0rQsX8K8G6\nRRuQRHaf9BR4+emDeXGwSKFQ1DVkzr1g7gVZAPhBusC/Dplft5oZKudfCTS99B+XYVEhH4WioSNN\nF/iWAiV1vbzgrltqvsr5V4KjB3aL6uTtCTbOvvb0OFikUCjqFtHFHAGQwdozowIo518JdEPn0a/v\nwZFkx55gw2I1sDos9B/Wh0EXnBBv8xQKRZwRWiJYjgZKbu5awH5uPEwqFeX8K8mxJ/dgys63GPfM\nFbTq0gIzYLJ4+nIub3cTS2b8EW/zFApFnBEpz4JIhkObu8IJektE0m3xNawEyvlXgYRkJ3M+Xciu\nTXsJ+IP43D6ydmfz2OgX2Lp6e7zNUygUcUQYnRFpcxBJ94HzWkTyE4jUHxBao3ibFoZy/lVgx9+7\n2PTHFgK+8C5dfm+AqS9Pj5NVCoWiriC0RIRzDFry/QjHeQhhjbdJESjnXwUyd+6P2oDdDJrs2rwv\nDhYpFApF5VDOvwp06tUBn9cfcdxis9BryDFxsEihUCgqh3L+VaBxsxTOG38mdqet6JhuaDiT7Fxw\nyzlxtEyhUCgqhpJ3qCITXr6Gjj3bMfXl6eQfLOCEc3pz9SOX0ihNdelSKBR1HyFlpFxBpScR4l3g\nPCBDSnlslPMCeAUYBriAa6SUK8qas1+/fnLZsmXVtk2hUCgaEkKI5VLKcpsNxyrs8x5QVrzjXKBr\n4b/xwBsxuq9CoVAoqkBMnL+U8lfgQBlDRgIfyBCLgUZCiJaxuLdCoVAoKk9tbfi2BnYW+5xeeEyh\nUCgUcaC2nH+0LgYRmw1CiPFCiGVCiGWZmZm1YJZCoVA0TGrL+acDbYt9bgPsLjlISjlJStlPStkv\nLS2tlkxTKBSKhkdtOf9pwNUixIlAjpRyTy3dW6FQKBQliEmevxBiCjAESBVCpAMPAxYAKeWbwA+E\n0jw3EUr1vDYW91UoFApF1YiJ85dSjinnvARujsW9FAqFQlF9VIVvnNm+Lp0vX5jG9nXp9DixGxff\nfh7N2qbG2yyFQnGEo5x/HFk1bw0PDn8av9ePGTTZuHwLP/5vDq8ufoq23VUmrEKhqDmUsFsc+fdN\nk/C6vJjBUN/PgD+IK9fNpLs/jLNlCoXiSEc5/zjhznezJ4r2v5SSVfPWxsEihULRkFBhnyrg8/pZ\nNXcNB/Zk0/G49nTp3QFNq9xz1GKzoBsawUAw4lxCijNWpioUCkVUlPOvJCt+Xs0jFz6Hx+VFmqEi\n5YRGTiZ+fid9zjiuwvMYFoPTxpzMnCkL8HkON4axOW1cdOuwmNutUCgUxVFhn0qQl53Pwxc8izvf\nU+T4AQoOunhoxLPs3ZZRqfluefV6jh/aE6vdQkKKE4vNwtArTuGi24fH2nSFQqEIQ638K8GCr34v\n2pwtScDv54e3Z3Pdk5dXeD6708YT393P3m0Z7N2aQbserWnSonGszFUoFKUgAzvAvxy0pmA9CSEa\nnitseN9xNXDluqPG6AHMoGTfjv1VmrdFh2a06NCsOqYpFIoKIKVE5j4K7qkgdECAcECTDxFG53ib\nV6uosE8l6HPmcWi6HvWc1W6hz9CetWyRQqGoFJ4Z4P4a8IJ0gSwAMwuZfROx6GpYn1DOvxJ0PLYd\n51x/OroR/mMTmqBZ+zROu2xQuXNk7cnmyTEvc17ilYxsdDWvTJhEQa6rpkxWKBTFkK5PAHfJoxDM\ngMCmeJgUN1TYp5L889XrGTCsDx888jm7Nu3B4bRx9vWnM/rOEVjt1jKv9bi83DLgPrL3HiQYCO0d\n/PjeHNYv28zrS54h1OpYoVDUGLKUhZbQiHwoHNko519JhBAMGNaHAcP6VPrauZ8tJD+7oMjxA/i9\nAdLX7+bPeWvpNeSYWJqqUChKYh8O+ZsAT4kTOhg94mFR3FBhn1pk0x9b8RR4I44HA0G2rt4RB4sU\nioaFSLgcjE7AoUJKA7AjUp5HCEscLat91Mq/Fml/dBvsCbaIB4Bu0WnTvVWcrFIcqfiDQRbv2okv\nEKR/6zYk2WzxNinuCOGApp+D5yekdx7ozRGOSxBGu6IxMrAZ/OtAbwuW447YcKxy/rXI0CtO4f2J\nn+F1+4qKxHSLTtNWTehzhsoUUsSOFXt2M27a1wRkoWigafL4kKFcfPSxcbYs/ghhBcd5CMd5Ycel\n9CMP/gu8CwrTQCXoHaDJewitUVxsrUlU2KcWcSY5+M+iJ+l92rFouoZu6Jw0oh8v//pYpbWBFIrS\n8AT8XPvtVA56PeT7fOT7fHgCAR6a+zObDmTF27w6iyyYFHL8eEIpoNIFgY3InAfjbVqNoFb+McI0\nTaa/NYtpr8/E4/Jy8kUDuPyBi0hukhQ2rlXnFjw3ayLBQBChCeX0FTFnzratmFFy1v3BIFPXruHe\nkwfHwap6gOtTIjeC/eCdi5QehLDHw6oaQzn/GPH8ta8zf+rveF2heP6012by29dLmPTnizgSIn9p\ndCN6sZhCUV0KfD6i1SsFpSTHW9K5KYqQpf1sJEg/HGHOXy07Y8CuTXv49YtFRY4fwO8LkL0vh9kf\n/hpHyxQNkYFt2xXF+ovjtFgY2qlhSRhUCtsQIMqizOiM0JIij9dz1Mq/iuzZuo+F3yxFShmK31t0\nKCbNDOB1eVn5y2rOv+msOFmpaIi0Tkrmxr79mbxiKZ5AAEnI8Z/Qqg2ndegUb/PqLCLpTqTvNzDz\nCYV/rCAMRMqT8TatRlDOvwp89Z/veee+j4u0QEqTBDGsOi07N69FyxSKELefeBIntWnLp2tW4/b7\nOb/bUZzTpSvaEZq2GAuE3gJSZyJdX4L/j9CK33lZ6PgRiHL+lWTPln28c9/HYQ1YSsOwGJx3o1r1\nK+LDgDZtGdCmbbzNqFcILRmReF28zagVVMy/kiz4ekmF1P8SGzl5fNp9SqpZoVDUSZTzryxSQgWU\nXzVd47hTj655exSKBoz0/4l54BrMff0x91+A9PwcP1ukiTQL6o00tHL+lWTQhf0RWvlxU1euG3de\nw1IJVChqE+lbhcy6EnwLQR6EwFrkwdsxXV/Vrh1SYuZPQmacgMzoh8wchOmaWqs2VAXl/CtJq84t\nuObxy7DaLRiW0nP1bU4b9sQjKy9YoahLyLzniSzK8kDes8goqa41ZkfB25D/Osg8IAjmfsh9FOmZ\nWWs2VAXl/KvA6DtH8NaqFxk8eiBWR6SGv81pY8wDF6GX0vVLoVDEgMC66MdlAcicWjFBShMK3iKy\nF4AHmffvWrGhqsTE+QshzhFCrBdCbBJC3Bfl/DVCiEwhxMrCf+Nicd94krE9k9++WYLP7Ys4Z1h0\nTjyvbxysUigqxn6Xi4lzZjPwnbcY+sG7vLdyBUGz9lbLMUFvWdoJEIm1Y4N0l94gJrindmyoItV2\n/kIIHXgdOBc4GhgjhIi20/mZlLJ34b/J1b1vvPnwsS/wuiIdP4Ar18WDw56qNxs/ioZFntfLiE8/\n5LM1q9lXkM/Wg9k8v3A+d82q22GKkojEWwBHiaN2cF5Ze9r8wgla4+jnjLpdUBeLlX9/YJOUcouU\n0gd8CoyMwbx1mt2b95V6TkrIzcpj/dKG1RNUEXs8AT/r9mey3xW7Ps9T163hoMeDv9hK3x0IMHPT\nBrYfPBiz+9Q0wn4OJN0HIgWwAQ5wXoFIuqP2bBACEu8ESu7v2RFJd9eaHVUhFkVerYGdxT6nAwOi\njLtYCDEY2ADcLqXcGWVMvaHL8R1Zuje71OpeTdMoyFGN2RVVZ/KKZby8eCGaEPjNIKd16MiLZw3D\naaneqnZR+k48gUDEcYum81fGPto3ir92vTRzkAUfgHc2aI0QzmsQ9tMixmkJY5DOS8A8AFpKSKu/\nltGcFyO1hFCMP7gHjE4hx285Bun5KfR2YB1Q5zqFxWLlHy3vsaRL/A7oIKU8DpgNvB91IiHGCyGW\nCSGWZWZmxsC0muPaxy/D6ii9M1LAH+Dogd3Kncfv87Nq7hpWzvkLv6/8qmFFw2Dmpo28vPg33AE/\nBX4fvmCQudu2cu/s6odmOjZqhCWKlLiJpFVS/AXMpJmPzLowtJEaWAe+Rcic2zDz/xt1vBA6Qk+L\ni+MvssF+DlraTLQWq9BSv0YGtiIzTkbm3Ic8+E9kxiCk/8+42ReNWDj/dKB4DXkbYHfxAVLKLCnl\nIcnLt4Gou6FSyklSyn5Syn5paWkxMK3m6HJ8R16c8wjHnnxUxONPN3RufHEsjsSS8chw/vhlNZe0\nuIGJFzzLwxc+x+jm41g+a1UNWq2oL7yx7HfcJVbn3mCQWVs2k1tNWeYrj+uNUcL5G0LQOimZ3i1K\n20StPaRrCgQzgWJ7atIN+f9FmnU/LCX9ayHvWcALMr8w++gg8sD1hCLjdYNYOP+lQFchREcRevRe\nBkwrPkAIUfw3agRQSo5W/aL7CV0YNu4MrPbwFYema+QdyMPj8vLzx/P54oVprF20PmwDOPdAHhNH\nPkv+wQJcuW5cuW4Kclw8cuHzHMysnTQ1Rd0l01UQ9bguBAc91XP+bZJT+N/Ii2mTnIxN17FoOv3b\ntOWji0bXjX613nmAN/K4sIL/r1o3p7JI1xeEPbiKCIQK0uoI1Y75SykDQohbgB8JiWG/K6VcI4R4\nDFgmpZwG3CqEGAEEgAPANdW9b13hw8c+j0j39Hv9fPrMN3z50nQCvgB+rx/DatDzlKN57Nt7MCwG\nv36xOOp+gSklcz9byAW3nFtL34GiLjKgdVu+W/83ZokIqlXXaZWUXOp1qzP28e6KZaTn5XJKuw5c\n3as3jeyRb6D9W7dh3thx7CvIx24YUcdUBhnchcz/L/h+B70lImE8wnZK1SbTm4NfEBk9DoLWpFp2\n1goyFyglbdbMr1VTyiImqp5Syh+AH0ocm1js6/uB+2Nxr7pG1u7sqMfd+eGrs4A/yMo5f3FVp5s5\nmJmLzWHF54lcHfi9fvKzo6/6FA2H2088iV+2bsbl9xMsXCU4DIOHBp8WEbI5xPcb1nP37Jn4gkFM\nKfkrYx+frF7F9MuvJtXpjBgvhKBFYvVj/DKQjswaWZjvHoTgDqTvT2TyA2jOSys9n3BejfTMIrx6\nVwe9DRg9qm1vTSPsZyG9P0fm/0s/WAfGx6goqArfatLh2FIkc6O8Pfu9fvbvOkDAF6Agx4U0I5f+\nNoeVPmceF2MrFfWNdimN+P7yqxl19LF0bNSYk9u2Y/L5F3JRj2Oijg+YJv83ZxaeQKCof683GCTb\n4+aNZb/XqK2y4PXDjr8Id6HMQvgCpyK1L8LaC5IfA5FQWKxlBa05JN5aPTulDxnMQspg+YOrg+0M\nsPQOZfkAIWdgh8TbEHrTmr13JVB6/tWk+wld2bBsS9gxiy30Y/V7I9PpysKeYGPA8D70GNA1ZvYp\n6i9tklN4emjF+kFszc4Oy9s/hN80mbNtCw8NjkyTjBm+JYQ7/kNICO4AowvStwSZ+zgENiBFMiRc\ng0i4iVCNaCSa8wJM+2mQdTUEt4CZDTn3IvVXoclHCK3i6ahSBpF5L4DrE8AE4UAm3YXmvKRK3255\nCKFD48ng+QnpmQFaIsJxCcJ6fI3cr6oo518Nlv64kp/enxtxvGWn5ngKvGTs2F/uHIbVoOfgHlis\nFs6+ZggnXzSgbmy6KeoVKXZbqfIM1Y3nl4vWHIJRynakH7QmSP8a5IFxFIVxZA7kT0KaBxDJD5U+\nb/5rIcd/aPNXAoGtyJyJiMb/qbB5Icf/cbH7eyH3CUzfEhAOhPUEsJ8T01RRIQxwDEM4hsVszlij\nwj4VJC87n/XLNpOzP7fo2JcvfhfWtP0Qe7dm8I9XrsWZ5MBWKPxWmgy0YTV4cvr9PDn9fgaPGohW\nSjxXoSiLZgmJ9G7RMmI/wGFYGHd8zepMicTxRMosWMF2KkJrgsx/ncjsHTe4PkcWboBKKZGBHchA\nerEhX0e5zg/e2UgZequWwT2YORMxM8/EzLoS6f01bLSUvsIVfxT1T880cH+GzJ2I3H9BkS0NBbXy\nLwfTNPnvbf9jxuSf0S06XpePxs1TOOXiAezatDfqNYbVILV1Uz7c+jpzpvzG/t0HcCTY+fjJL/G5\nDxdy2Zw2Rt1xHhZr3ar8U8SfOdu28O/FC9mRk0Onxo3514CBDG7fscxrXjv3fK7/7ms2Zu3H0DR8\nwSDXH9+Xc7uUX2xYHYRtCDLpbsh/MXRA+sE2GJHyXOhzYANROyAJA4K7kUEP8uBtENwPSKTetnBl\nX1rY1ARMZHA3cv+Iwv2GAAS3I7NXI5PuQUu4onBoGZk3h5Cu0CZ1wWRE0m2V/O7rL6Kuio/169dP\nLlu2LN5m8Nlz3/DhY19GXeGXhiPRzpcZ70Tk///2zRLevPN99m3LIKFRApfcPZJL7xmpVvuKML7b\n8Df3zv4xQoKhZ7PmTB5xIWnOhDKv33Qgi30F+RyT1qzmQz7FkNILgR2gN0UUS8k0s28OyTREPABs\nkDoDss4PFUIVIUA0AssJ4PuZ8P0EAZY+aE2nYOZMBPeXRDwkRAKi2e8IYQ3F+zMGhpq9lIfeFi0t\nfp3AYoUQYrmUsl9549TKvxymvjy9Uo7f5rRy44tXRzh+gEEX9GfQBf0J+APohq5i+4oIpJQ8NX9e\nVO2d1Rn7uPKrL5h5xdgyf3e6NGlKlya1n1UihA0skckKIvFmpHcB4Zr3DnBeivDOiZJ9IwEfWE8A\n3/xi12mAE5HyROijbxGlvh0EtoKlO0LoyKS7IPcJIkM/JSldruVIRC05yyH/YMVy7g2rwcDz+/Hk\n9w8w/IYzyx5rMZTjV0TFHQiwv5TqXoBdebms2BtST1mftZ83ly3hfytXsDc/r7ZMrDTCcjSiyTtg\nHANoIBpD4gRE0n3I4F6iOmXpA/fnhIdsJAjtsISy3iL6DaUftNSij5rzEkSjF8A4qlABNIHIXGw7\nOMdU9Vusl6iVfxmYpkmrLi3Yvia93LGGReexb++tBasURzJ2w8BhWMj3R9eAEQh25eby0+ZNfPjn\nSgKmiS4Ez/32K8+dcQ7ndz+qyvf2BgKs2rcXm2HQs1lztBguUIS1HyL168gT1j5ItzNKQxQNgtsJ\nl0mQIL1I1ydgdIZANGFgK9gGReTTC/tZCHsobVYGdiAPXFGou1P41mEbjFDOXwEhtc37zn6CvVsy\nKjS+w7HtatgiRUNAE4Jxffry+tLfo+btB0wTTQg++nNlUWjoUODjntk/Mrh9B1Lsle8dPWPjeu6Z\n/SNCCKSUJNvsvDPiQo5KrWGBRdsQ0DsXbgofCq/awegYSh+NEELzgnsGMphOZOtEI+T4U14s85bC\naAdpc8C3AIL7wNILYan6QzOWSDMfAptBb44o7c0mRijnXwozJv/C+qWb8EZp01gSoQlue3N8LVil\naAjc0n8gLn+At1csDdsidRgGQzt2ZunuXVH3BAxNMHf7VkZ2D5dAWJ+1n2/WrcUd8HN2566c2KZt\nWNhxS/YB7pw1M2zOAr+fK776nEVX9cEi94ClB8ISe2kFIXRo+hGy4D1wfwvo4Bwd2uw9EG0lbo3y\nRlCI5Xi0xm9V8L5G6MFTR5BShiql8yeFsqCkD2kdiGj0MkKrmZaUyvmXwqwP50Vt02hzWmnZuQU7\n1+0iGAwWxu/h6Ste4bqnLuekESfEwVrFkYQmBPedPJixvY7nhUXzWbB9Ow6rhSt79uaa3n24/cfv\noyVOAkSIBb6/agXP/jYff6Hez5dr13BW5y68eNa5RQ+Az9esJhAM33RtYnPz6ZDP4eAkpACQSGt/\nROP/xlw3XwgHInECJE4IO25aeoJ/FWGOXhggS9vk3RhTu2oVz/eQ/zbgOZwU5VuEzLkf0fjVGrml\n2vAtBd2I/qMRmuD+D29l4pd3YnNYC1U7A2xfm85TY/7NvC8W1bKliiOVlklJvHjWMH6/YQJzx45j\nbK/jmfD9NGZt2Rx1fMCUnNbhcC1ApquAZxb8iicQICglEnAF/Py0eRML03cUjctyuQiUeGo8138O\nbRNzMISbUHjFA74lyPyKrazLQkov0vMj0vUVMri71HGi8VvgGA5YAQ2MntD4fULiwVHQW1fbtngh\nCyYTGcbygXcO0syNdkm1Uc6/FIaNOwN7QmTqV3KTJDr2bMekez6MeDPwun1Mvu+j2jJR0cD44M8/\nWLhzO74Sq3QB2HSdZ884KyzeP3/7NvQoNSSugJ8ZGzcUfR7SoVNYa0iH7uekZruwaCX3HDyFGThV\nR/pWITNOCnW4ynsUmXk2Zt5LUccKLREt5VlE81WI5n+ipU5Fs/YC5+VE7Zmb+M9q2RZXzKzox4UO\nZs3091DOvxTOuGowA4b3xea0YbFZcCTZSWyUwCNf3Y0Qgj2lNHDfuzWjSLnwt2+WcF2PfzHMMYZr\ne/yLBV/XrLqiov4yZ9sWRnz6Ece/9TqXfvkpy3bvihgz5a8/I7p7QShM9OXoMYwoEeu36joiirys\nhsBmHI74ntW5C0c1TcVReMzQTEpN9JFl17zIwE6k56dQN6uS52QAmT0eZF5hdys34IWC95He0puc\nCKGHhZpE0l3gvBqEA7CCaALJjyDsp5dpW53GOpDo7tgOeqsauaWK+ZeCpmn836e3s+mPrfw5by2N\nmiVz0gX9sTtDbwNNWzUhc2ekcFuTFo0QQjB/6mKeHftq0dtB+vrdPHPVf7j73Zs59ZKTavV7UdRt\nSlb0Lt29i6u/+ZL3Rl5M/9ZtisaVXPEfwqLpUSt5h3ToFFVC2WroXHTU0Yev13U+vugSpq5bw7QN\nf+M0LHhoj4WtJa40wH5GVBukDCJz7gXPjyAsQBCpd0Y0efewAqdvGdE7XLmR7s8Bgcx7JhS715pC\nwgSEc0xETYwQOiL5LmTSv0LpmiIFIer3OlYk/hPp/eWwVEXofQ6SHy5V+bS61O+fWC3Q5fiOXHTb\ncE6//JQix5++YTdWW+Rz0+a0cdXDowF4+76PIsNCLh+T7/+45o1W1BtKq+j1BAI8vWBe2LHzux2F\nVY90BM0SEqI2Xk+0Wvnv8BE4DIMEiwWnYcGq69w24CSOadY8bKzNMLi8Zy8+vfhS3h15EclpL4f0\n9IuqXh2gpSIS74j+fRS8D56fONy31g2B9cic+4qN8hK10QVAcA8y+8ZQw3YCYO4L9QMomBR9PCCE\nBaE1rveOH0AYbRGp08ExBoxuYDsN0eQ9tBpUBVUr/0pSkOviX4MeJO9AeBWm0ATXPzWG4eND1b17\nt0avD9i3LRMpparwbeAc9Lj5at1a1mftL7Vf7/qs8DfLm/r2Z9bmTezOz8Pl92PTdQxN4+Wzh5X6\n+zS4fQd+HzeBX7ZuxhMIcGr7jjRPLD91UFiOhtRZSPcXhVIJxyMcIxBaKbpC7o+IrNT1g3c+0iwI\nXWfpV0qmjqNQgK3k9W4oeBOZcG3MM4zqIkJvgUgpQ+I6xhxxzn/ht0v530NT2Lctk7ZHteL6p6+k\nz9CeMZt/zpTf8Hn8Ea/TNqeVlp1a4Pf6+WXKb1hslojevgBNWzVWjr+Bsz5rP5d88Sn+YBBPsPSG\nP80Twp10ks3Gd2OuYubmjSzZlU7b5BQuPvqYcoXeEq3WiP2AiiD01FAKZkUwS1boFscLJCC0BKTz\nBnC9zmHZBgdY+4B/XfRLZRBDmvdiAAAgAElEQVTMA6VLOSiqzBHl/H+ZMp+XbnizKNyyYdkWJo58\nhke/voe+Z/aKyT3SN+zCUxC56RX0B9m+Lp3//d8Udm/eG9Xx25w2rn6kZroHKeoP98yaSZ6v7I1T\nh2HwrwGR/V5thsHI7j0iCrniju1U8HxDhHKn3iqk5QOYrmngervYGA2EFVKeg4P/BP+ByHmFqB9N\n2+sh9T9YVoiUkrfvjR5nn3TPh9Wef9XcNdx8wr18+9rMqJkQusUgY3smuzbtifpwaNQshQkvj+Ws\nsUP4e8lGNq3cWqF+poojizyvl3X7M0s9b9N1km027hl0ChcU25Sty5gFH4LnW8Idvx7qkpXyVKFk\nhB/yHiUU2jk0zgxtcLr+h0i8jcj0TQc4G0bIJx4cMSt/vy9A1u7sqOfS15deSFIR/lqwjgfPeypq\nxS+AxWahXY/WbFyxJeoYR5KdiV/eidflY3SLcQT9QaSUJDZO4LFv76VL77KbdCiOHKLl3R8i1eHk\n+yuuprHdEdGRq65i+pZC3uNRzkho8hXC0jn0MbCZ6E1V/OCZg0i6Bxq9gsx7MtT3V6RAwg2IhHE1\naH3Dpn78hlUAi9UgMcUZ9VzT1hV/bfR5/ezZug9PMQ3/dx74JLrjF5DUNJHzJ5zFCz8/TEJK9Nir\nNCU+t49HLnqevAP5uPLcuPM9ZO7M4p6hj+J1V7xfgKJ+47RYGNimHXqJ10ebrjP6mGNJcyZUyvHX\n9tujlL5QoVZgU+jeuU+XMtIE/4rDH7WU0mUZCiWahf00tLTZiObr0JovRUscf0Rk8tRVjpifrBCC\nMQ9cFFGVa3PauPrh8uPsUko+eWoqF6ddx/jj7mRU2nW8eef7BINBtq2JJh0LVpuFd9b8mwkvXYMj\n0cHIm8+JuL8QgqYtG/P30k2YUfK0A4Egi6eviDiuOHJ5/syzaZOcQoLFgl0PSTj3btGSf/Y/scJz\nzNi4nlPfm0znV1/ixHfe5JPVq2r8QWC6v0NmDEBmX4vcfzFy/3kQLEPuvJjWjtBbguVYIoMNDkTC\ntWFHaiqvXRHOERP2ARh1x/mYQZMpT3+N1+XFmeLk2ifGcMaVg8u99ofJs5ny1NdhK/7pb83CkeSg\nZcfmbMzeEnGNZugkNT682h8wvA8X3DqMqS9Nx2IzkBISUhw8Mf1+vnltJn5v5MonGAiSu79mtDsU\ndZNmCYnMvupaFu7cwc7cHI5Oa0av5i0qnAU2e8umMBXOjIICnpw/l6BpclWv42vEZulfBzkPEpaO\nGdxMSHenFGxDwz6KRq+FKnwDG0OFYNIHieMR9rKbHylqhiOyh28wGMST78GR5Khwf9wrO/6Dfdsj\nN+KcSQ4e+ORfPH7pS2GhH5vTxui7RjA2SvZO1p5s1vz2NympyfQc3ANN01j03TKeuuIVPPnhucw2\nh5XXljxDh2PaVvK7VDRUzv7oPTYeiNSCaWJ3sPSGCTWSSmzmPAjuqUTG7e2EUjlL+BHRGJH2c1Q5\nYhnYBMFMsByD0JJjbmtDp6I9fI+YsE9xdF0nISWhUo3Rs/dFb/DscXk5fmhP7nr3H6S2aYqmaySk\nOLn8gQu5auKoqK/aTVs2ZvCogfQackyRDf2HHU+X3h2wOQ+vlOwJNgZfMlA5fkWl2JETXegrx+uJ\nqvMfE4IZRN2wFToQpUm8PIjMGIT0LY28xOiCsA1Ujj/OHFFhn+rQuXcH1i2O1ANv1jYVi83CkEsG\ncerok/B7/VhsFuZ+tpCrO9/Cvh2ZpLZqwtjHLuWca0sXltJ1nedmT2TmO78w68NfsdgMho8/kyGX\nKp2fhsLsLZt4a/lSMgoKGNS2Hbf0P5FWSZV3gO1TUtgQZeWfYrdjN2roT9o2BHy/E1GFK71EdyMS\ncCOzb4Jmi1S6Zh0kJmEfIcQ5wCuEhLYnSymfKXHeBnwA9AWygEullNvKmrM6YZ+qsGbheu4963G8\nxWL+NoeVB6bcFtGgZd4Xi3j+2tdKhIGs3Pyf6zj3uvA4p0IBMHnFMl5e/FuRKqchBAlWGzOuuJoW\niZG6PGXx89bN/HPG9LBVvsMwePCUIVzeMzbFjCWR0o3cfwEEd3O43aIDjA6FejylIBIQjf6DsJ1S\nI3YpIqm1sI8Ibc2/DpwLHA2MEUKUrE65HsiWUnYBXgaere59Y80xJ3XnxbmPcsI5vWnaqjHHnXo0\nT37/QNTOXO8+GJn66XX5eO+hT2vLXEU9wu33hzl+gICUFPh9vLlsSaXnG9qxM6+cPZwOjRqhCUHL\nxCQeHTK0xhw/FHbbajoVEm8B41iwnoRo9DI4LiZq2OfwlaWneFYRGdiKmf8GZt7rSH897t4VZ2Lx\njtgf2CSl3AIghPgUGAkUF/QeCTxS+PWXwGtCCCHr2G5z936deeqHB8sdF21jGODAnoMEg0H0KMqL\npmmSn12AI8mOxWqJcrXiSGVz9oGoxV0B02RRevQ04vI4s3MXzuzcpbqmVQqhJSISb4TEGw8fNPOQ\n+a+DLF65WwwZAGv/mNlgFvwP8l4CgoBEFryFTByPlnhLzO7RUIjFhm9roPhvcHrhsahjpJQBIAdo\nGoN7x4UWHZpFPd60ZeOojv+XTxdwWevxXNp6PBc2uYY373qfYCC6NrviyCPV6cRfihZ/yyhSzG6/\nn+cXzmfgO28yYPIbPP7rHHK9dbMQUGhJiKZfgKWkDpEB2CHlqdKVQEtBShPpW4n0/oY0DyueysDO\nQsfvJaR5HwQ8kD9JvQFUgVis/KPllZVcAlRkDEKI8cB4gHbt2lXfshri+qcuD2vUAqHUz2ueuCxi\n7LKfVvHSuDeKxgZ8MP3Nnwj4Atzyn+trzWZF/GiRmMSANm1ZnL4zrCGLwzC4qW/4qlhKyRVff8G6\nzAy8hWM//nMlC3ZsZ/qYq7BEWVzEG2G0QzR9D9MMgm8x+OaCSEY4RiKMyv0dS/9GZPb1oW5fhSEj\nmTwRzTkKvL8Q9e0CP9LzE8LSNQbfTcMhFiv/dKB4rmIboKSYTtEYIYQBpAAREn5SyklSyn5Syn5p\naWkxMK1mOOXiE7n7f7fQslNzhCZo1i6Vf71xQ9Rsnw8f+zzq/sCMd37BXVBSv1xRn9iXn88nq1fx\n2V9/st9VlqQxvHrOeZzctj1WXcdpsZBktfHIqadzYpvwNN9F6TvZkLW/yPED+EyT3Xm5/Lw1stCw\nLqFpOpp9EFryg2hJ/6y845dBZPY1YO4tbPOYD3gg97HCtpCC6OtIoaqCq0AsVv5Lga5CiI7ALuAy\n4PISY6YBY4FFwCjgl7oW7y/Jnq372LE2ndZdW9KmW2QPzVNHD+TU0ZGSuyXZuzX6/oCmCXL35+FI\nKKlkqKgPfLDqD55eMA+tsKDqkXm/8PTQs0pV4kyy2Zg84kKyXC6yPW7apzSKuopfk7kvarvGAr+f\n1Rl7OadL+OrWlJJdubkkWC00cUTXtqo3+JYUtjGMOIF0fYpI/AfkPR/lvA72s2vauiOOajt/KWVA\nCHEL8COhVM93pZRrhBCPAcuklNOAd4APhRCbCK34I+MjdYSAP8DTV7zC4unLsdgMAr4gx5x8FI98\ndXeVHHXXvp1Y8v1ySj7qNF2jSctGMbJaUZtsPZjN0wt+DVudA9z/808MatuetITSY9xNnU6aOkt3\n0q2TUrDpBgEz/G3RaVhol5wSdmzetq3c+/OP5Hq9mFJyQqvW/Pvs4WXOX6eRuURf2ZtgZiH0Fsjk\nhyD38cJxhX9USXciDKWMW1liUhEipfwB+KHEsYnFvvYAo2Nxr5rmo8e/5PfvV+Dz+PF5/ACsnr+O\nN257jzvevonvJ8/iq5d/wOqwcNOLY+l16jFlznfNY5ey8pe/wusHCpu6qKyf+sn3G9YTlJHVrpoQ\n/Lh5I4Pbd+C1JYtZtmcXbZKSmdBvAAPbViwEckanziRYLLgDfszCFYMArLrO8G5HFY3bmJXFP36Y\nFpY++vuudK79dirTxlxVvW8wXlj6gfRHHheOIv0fzXkJ0jYYPLMACfahCL1kfomiIhyR2j7VYVSz\n68jZnxdx3GKzkJyaRNau8K2KAef14Ylp95c554blm5l838dsWL6Zpi0bc8X/jeL0MSfH1G5F7fHv\nxQt5bclizBKbjzZdZ1yffry/6g/cfj/Bwr8th2Hw5OlnVrg5S3puDnf8OINV+/YA0CM1jRfPOpcE\nqxVfMEjb5BQemjObT9esLnpAHMJhGHw5egw90pqFpJcLJkNwJ1gHIBKuQ+jNo92yzmDm/xfy3wLc\nhUccYHRBNJ2iqoQrSEWLvJTzL0ZBrovRza+Pqr5ZFm+tep5OPTsA4HV7MYMmjsSyCl8U9Zm1mRmM\n+mJKhI6OTdcZ1LY9c7dvjXDKjex2lo6bUGYzl5Lkej1ICbleLzf/MI2NB7IQQtDE4aCpw8nqjH0R\n1yRZrbx89nCGtNgAOfdwWHTNEqq2Tf0GoUfuYdUlpHcR0vVJKOPHdi7CeQEhkQBFRWjQwm6VRUrJ\n2/d9xCUtxhEMROs2BJpeulLiW3d+wIG92Tww/CkuaDSWC5tcyy0n3s/2tVUr4FHUbY5Oa8bVxx2P\nwzDQAF0I7IbBbQNO4q/MfRGOH8ATCLA3P79S90m22UmwWrl06qes3Z+JNxjEEwiwOy+PdfszsUXZ\nMPYGgxyb1hRyHyG8ZaIfZB4y/1WkDCBdX2FmXY154HqkZ2adaikqbAPRGr+K1uQ9tIRLleOvIZSw\nG/Dt6zP59rWZRTH+4hgWA8NmoGkCV647ytVgmpLbB09k37aMoofHhqWbuO3kh/hg82skNY6UtVXU\nb+47eTDDu3VnxsYN6EJwXvej6N40lekb15NRUBAx3pSSZFvZTmxXbi6r9u2leWICfVq0QgjBgh3b\nyfP6Ih4oAjA0jaCUBMzQ71znZBfnd+tEqi0H8qNlzQTBswAZHA++5RwKrUjfMnDMR6Q8WZUfhaKe\nopw/8MUL08I2ZA8hNMH5E87iglvP5eUbJ7Hy59VRrx844gTee2hK2FuDlOD3+Zn94TwuvHV4jdmu\niB89mzWnZ7PwGPqEfv25e9bMsI1Ym65zTueuJJXi/E0p+b9fZvH132sxNA0JtEhI5KOLRrMvPw8z\nyuay3zQ5t0s3km02NmQs58m+02ibkIMhdMh+g1AFbBSEtbC9YvGFjBvc3yGd16hCqQaEcv5Ablbk\nBi+EcvGvfXIMr9w0iTW/RVcu7H5CZywWPWq4yOvysbOazeMV9YthXbuzMzeH//y+GF0IfGaQ0zt2\n4qmhZ5V6zdS1f/Ht+r/xBoNF6aPbcw5y1ddfYGh62IPkEE6LhSEdOjGyexdk5sNg7qcoxGNGf0NF\nOMDoBL5o4UgJvkVQTecvA5uQuU+BbxloSeC8CpFwgyrCqoMo5w8cNaArK3/5K+J48/ZpZO7MYv5X\nv+P3RP4B6haNjX9sZevqHQT8kYU59gQb3U+oXfEtRfy5sW9/xvY6nm0HD5LmTCg37/69VX/gDoSH\nHINSsjk7O+p4m67TKjGJc7t0Be+vhYVRFYjZO68JDfP9RsSbgdCLGqlXFRnchcwafdge0wP5/0UG\ntyNSSmv0rogXyvkDN75wNbef8hA+jx8zaCIEWOwWbn71etYu2oCmRd/sDfpDq31flFW/btFJTk1S\nzVqOQLyBAF+u/YvpG9eTbLNxRc/eDG7fIWyM3bBwVGrFJEoKfL7yBxXiNCxcd3wfbuhzAjbDQPoy\nQFZEJNAJ/jWh1X3UkJAW0XO3LKT/bwhsAaNrUahIFrwb6ssb9iDyhEJKibeDuQ9Z8A74d4K1Bzgu\nRbP2rPA9FbFFOX+gS++OvL70WT556iv+nLeGghwXrlw3T1zyEq26toi6qi8NoQmcyQ5OuWgA1z11\nBTaHylQ4kvAFg1zy5adsOpBVFI5ZsGM74/r04/YTB1VpznO6dOW9VX9ElXUoSYrdzh0Di9WIWPpU\n8C5e8C0k0vEboKUgGr2J0MqvDJZmATL7RvD/GXpbkEGktR+i8X9Dx4hWpGVDFnwGrrcp6gTmXg3u\nzzH1LojGb1ZaB0hRfVSqZyHtjmrNqNvPIzcrvyirx53vYfMf2wj4Kp73rxs6H2x6jTsn/4PGzVLK\nv0BRr/hh43o2HzgQFod3BwK8tXwpmVGyfCrCTf360ywhAUdhC0ZDlP5n2aqEBLSwdAPbaZTdUAVC\n8selrPhTf0VYK9YIRuY9Df6VgCckvoYHfEuReS+C0Y2QwkvJi7zg/oCIFpAAwU3IA1ciC99epDSR\ngR3IYHRNLEXsUCv/Ynz85FR87oq/gkdDCLA71Wq/LmBKyYyNG/jq7zVoQmP00cdwZqcuCFF6zUZ5\nzNqyCVcgcnVr0XSW7EpneLfulZ6zkd3BjMvHMnXdGn7buYM2ycmk5+bw6/ZtYfpBDsPgHycMiLhe\nNHoJ6foc3FNCjtbMKnTMh661ASXDMYcIIET02paSSCnB/W3hXMXxgnsqoukXSM90kMU3nG1g7QO+\nlWVMnAe+hUh0ZM69YOYCQaTlWESjfyP0FhWyT1E5lPMvxra/dlar2MVis3Dq6IFY7aoMPd5IKbnl\nh+/4dfu2Ime9KH0Hw7p047kzz6n0fJsOZDF17Ro2HziABkRzlyn2qiu0JlitXN3reK7udTwQ2ld4\n8JdZfL9xPZrQsOga9w86ldM6dIq4VggdkTAGEsYAIM1sZN4r4JkJwgDHKPCtAP/iyBvrnSpRRCWJ\ndPyHTnkRRmdo/C4ydyIENgMWcFwEiRMg84wy55X+dZD/OmEpqP5VyANjIXVmtR7Yiugo51+Mzr3b\ns2vTHqRZ/gNAiJBAm8/jw+awEQwE6XXasdz6xg21YKmiPJbt2cWvO7aFrdJdfj/TN67n2uP70qOC\nm7EAn/71J4/9Ogd/MFik11MSp8XCwBLa/NXBZhi8cNa5PDJkKNluNy2TkjAqKA0htMaIlEcg5ZGi\nY9K/AXngktCbAUEK5eIQKY9W2CYhNKSlL/iXE/4WIcB6Yugra19E6vdI6QWMohRP0zoQfAs4/DZS\nDBmEwFYiw1JBMPeF6hKsfStsp6JiqJh/Ma74v1EVXrVLCWdcdSqf75nME9Pv5911r/DU9w8off46\nwvzt23H7I8MzQdNkwY5tFZ4nx+Ph0Xm/4AkEIhy/TdexaBoWTaNLkyYs2ZVeXbMjSLRaaZuSUmHH\nXypGp2KbwwLQQWsCeuUeWCL5URAJwKG/ExuIJETyQ+HjhC0st180egGM3kRKNjvAfk5h564om8VS\nQDBSw0hRfZTzL0bHY9vx3OyJHDWgK+JQemcpb5v2BBsnX9iflNRkjht8NM3b193OYw2RFLsdaxTt\nG4umk2wr/wG9KzeXpbvTmbVlExatrAIlgb+wEfu4777mvZUrqmF1zSEL3g8VXhU2PocAmBnIg3dU\nah5h6YpI/RESbgylhibehEj7CWF0KPs6LQUtdQo0+RbsF4HeAYyjIelBRMqzhW8O0TatA2BR6aA1\ngVL1LIOd63fxxu3vsezHlWHNWGxOGwOG9eH/PrtdxSLrKJkFBQx5f3JEdazTYmHhdeNLfQDk+3zc\n/MM0luxKx6qHqmsFITmFkmhCRGju2A2DJeMmkGitG/s+UkryfD4ScoYjzB1RRlgQzRYgqlngVV2k\nWYDMOr9wlX/oDcABjmFoqkCsUlRU1bNBxvyllPw5by0Lpy3FkWjnjCsHR23VmLkziz9/XRfRhSul\naSIPTPmXcvx1mLSEBF4fNoJbZ04vOqYLwRvDR5a58r939kx+35WOr5jUQjQERFXvtGgaazMz6N+6\nTbXsjwXfrl/HU/PncdDjZs7wLFpEzQbVCvcB4ovQEqDpV8j8t8D7EwgnOK5EOOtFD6h6SYNz/lJK\nnrriFRZ/twyvy4um63zx4nf887XrIxqwf/2fH6IKvuUeyGfHul10PFYVptRlhnToyNJxE1i2Zxe6\n0OjbslXUvrmHyPf5+HnrlgoVW1l1PerDIWCaNCoj68eUkjWZGQSCQY5t1rxMe6rDz1s3c//PPxX1\nHJixsxNXdF6DVS/xBqM3B61uNHgRWiNE8r3AvfE2pUHQ4Jz/khl/sHj6cjwFIaceDAQJBoK8evM7\nDLqgf5j8cs7+3KhzaLpGfnbVCnoUNYOUkr/3Z3LA46ZnsxZF8sk2w2BQ2/YVmiPP60WUtslTgmiO\nXxeC9o0a061patRrVmfsY/x335DnC93H0DReOWd4hDRELHhl8cKwZjOvre3D0FbbSLW5cVoCgBWE\ngUh5Xr3BNlAanPOf+/lCPPmRlYaGRWfF7NWcOnpg0bFBF/Rny6rteEsUfplBk659I/OtFfFhV14u\n1347ld25eeiawBc0uePEk7ih7wmVmqd5YiLJNhuZrsp1cjMKM346NGrMOyMujDrG7fdz1ddfkOsN\nf5Oc8P23/Hz1dbgDAV5atIAlu3aR5nTyjxMGMKxr5QvGDpGeG75wyfHZGfbjaC7ssIX/G5CIzd4Z\n4RiF0JsjpQc8M5D+DQijKzjORQjVie5Ip8E5f4vVQAgRWcwlQueKc/6Es5nxzi/sT8/C6/YhhAg1\nbn9prKrirUNcP+1rtmZnh6Vi/vv3hfRIa8bJ7Sq26ofQBu6Tp5/BrTO/xxsIVEQnEwCbbvDVJZfT\ntWnTUsfM3rqZYJRN46CUvPvHcj5dsxqXP9S0PdNVwN2zZrIzN4cb+/avsP3F6Z6ayu8lUk89QQs/\npB/HY+f+A60wdVQG9xUqceaCdCFxQv6L0PSLOt/uUVE9Glyq59nXnIbVEZmJIU1JnzOPCzvmTHLw\nxvJnuebxy+g15BiGXHoSz82ayPAbzqwtcxXlsDEri505ByNy8N2BQJXSLs/o1IXPRl3GsK7dOTat\nGad16IStnBz7RKu1TMcPkO12E4hSPOgLBpm7fWuR4y9u/39+X4wnipRERbj7pFOwG+GLGYdhcMeJ\ng8L6CMvcJ8DMLJRhBnCBmYXMeaRK91XUHxrcyv+Yk7oz+q4RfP7cNwhNQ9MF0pQ88tXdUVfzjkQH\no+44n1F3nB8HaxXlcdDrLrUA6oA7WivD8unZrDmvnnseADtzcjj34/chyqodQqmdlx5Tfh76gDZt\niRZad1os5Hq9UTOHNCHYnpND91L2EMqiT8tWfHDBKJ797Vf+3p9J88RE/jXgJIa070imq4BUhzMU\n6/fOIbLq1gTffKSUaj/gCKbBOX+AsY9cwjnXnsbSmSuxJ9gYOKIfCcnly9kq6h7HpjUv6mFbHJtu\ncGbn6jfSuWf2TDzByD0AQ9MwNI2T2rSLKrZWEtM0MUus/HWhcVyzFuiaiNr3128GSSunEUxZ9GvV\nmi9Gh/R+st1u7po1g7t+moEQgpaJSTx35tn0LfWtpsEFBRocDdL5Q6hL13k3qvBNfcdhsfDgKUN4\ncv5cPIVxeruu0zwxkSt79q7W3J6An2W7d5Waz//VpVdUaFVuSsm4777GZ4avsAVw5XG9aGx3sGLP\n7oi+v2d06kwTR/UXJVJKrvrmSzZm7S8qVtuec5BrvvmKxaPPICH4I+HSCgbYzlSr/iMc9XhX1Hsu\n79mLDy4cxbCu3ejfqjW3nziI78ZcVWrD9IpSVtqnzTAqHI75K2NfRJYPQECafL72Lwa2bcdTQ8+i\nsd2BwzCw6jrndu3G81VQH43G6ox9bDuYHVGlHDCDTNowFIwOoaIqLCHdHr0tImViTO6tqLs02JW/\n4siib8vW9G3ZOqZz2gyDE9u0ZXH6zrANZaumcX63oyo8jzcYKHUVfUh8bmT3HpzXtTt7C/JJsdlj\nKg+xKy8XLcqDzG+arMvyIZp+F+rrG9gUEoCznqwarjcAGqzz378ri6n//p61C9fTrkcbRt15Pu17\nxL8kX1G3ePaMsxn1xRTyvF48gQB2w6Btcgp3FW+lWA4JhjVq1bDDMBjRvUfRZ13TaJ2UHBO7i3NM\nWjP8ZuT97YbBgNZtEEID2ymhf4oGwxHp/A/l8Je22krfuIdbBtyH1+Uj4Avw95JNzP30N56Yfj+9\nhhxTm6Yq6jitkpKZO3Ycs7dsZmfuQY5qmsYp7TugFf5umVIiKP137aVFv/H2imUROf5Oi4UeqWmM\n6lHzv2/tUhpxTpeu/LR5U9G+giEESVYblx5becVMKd0QzAQ9TRWD1WOq5fyFEE2Az4AOwDbgEill\ndpRxQWB14ccdUsoR1blvaeRm5fHaP99h/le/YwZN+p3di1tfvyFCbvntez7ElesuatpiBk08Li8v\n3/gW//v7FbXRpQjDqusM69ot7Nj2gwf5vzmzWJS+E10IhnXtxiOnDg3r5vVXxj4m/7EMb4lsIU0I\nHh58Ohf2OLr6Ov0V5IUzz+V/aSv46M+VFPj9DO3YiTsGDqqQvPUhpDSReS+D630QGkgT6RyLSLo9\n9PagqFdUd+V/H/CzlPIZIcR9hZ+jqTK5pZTVS70oB9M0uX3wQ+zetJeAP/SKu+zHVdwy4H4+2Pxa\nWJOVVXPXRO3WtXdbBq5cFwkpCTVpqqKek+v1cNHnH5NTmJ9vSskPGzewISuL6WOuKlo8fL9hPb5A\nZLjFpuuYyFpz/BAKKY3r049xfcpV+i0VWfAOuAobsR/683F9gNRSEInjYmKnovao7m/fSOD9wq/f\nBy6o5nxVZvmsP8lMzypy/FC4oi/wMPfT38LGJqRET5/TNA2L6r+rKIev1q3FHQiEpYD6TZPtOQdZ\nuntXzO+X6/Ww/eDBqPUMsUZKH9I7H+n5GWnmh58smExYj10IfS6YXON2KWJPdVf+zaWUewCklHuE\nEM1KGWcXQiwj1KTzGSnlN9EGCSHGA+MB2rWrnFxy+vrdBHyRxTieAi/b/gpvYnHhrcN4b+JnYXLN\nFpuFUy89CavNUqn7KhoGvmCQb9evY/qGv9mSnR2mmHkIKSWbsw8UafkP79ad9//8I2KsKSVDO3Yu\n954FPh/3zJ7Jz1u3oAsNm67z8JDTGVlskziWSN9yZPaNFFX8ygAy+VE050WFnw+WcmFEpFdRDyjX\n+QshZgMtopx6sBL3ad354X4AABOMSURBVCel3C2E6AT8IoRYLaXcXHKQlHISMAlCnbwqMT/tj26D\nYTHwe8P/0OwJNjr16hB27KLbhrNz/W5mfTAPq92C3xeg16lHc+vr6tVVEUnANLny6y9Yk7EvojNY\ncYQQdG1yWOPn2GbNuaFPPyYtX0ZQmmhCIBA8ftpQUitQuXvbjz+wYMe2wkyhIO6Anwd+/omWiUkx\nbxYjpRuZfQPIEqv93EeQ1t4IoxMYXSCwMfJio2tMbVHUDuU6fynlGaWdE0LsE0K0LFz1twQySplj\nd+H/W4QQc4HjgQjnXx16n34sLTo2Y2exNwBN10hIcXLqJSeFjdU0jdvfupGxj17C9rXptOjQjD1b\n9vHPE+9nx7pdJDdN4tJ7RjLqjvPV5m8DIcvlYm9+Hu0bNY7Isf9p80bWZmaU6fitmk6XJk3p2zJc\nCfP2EwdxfrejmL1lMxZd59wuXWlVgXTOjIJ85hc5/sO4AwHeWLakys7fDOyG3IfBvzLUwD3xNjTH\nueCdB1F1TANI91RE0t2IpAeR2TcBxSXR7YikyqwDFXWF6oZ9pgFjgWcK//+25AAhRGPAJaX0CiFS\ngUHAc9W8bwSapvHSvMd48873mfvZQsxgkAHD+3LzK//f3p2HR1Xfexx/f2dLJglbQiISQGiNSljE\nNgTBaimiIqi4IEK11au2xdqq19pbvTytUltrn9722qr31l61t1XrVqv0gbrgUrguVMAVWSz7qoQl\nC1lnznzvHzNAkplJgsnkTDLf1/PkIedkMucTnsk3Z37nd37ff0m6/HL+oAHkDxrAR2+u50czf354\n3f6qimr+cPtT1FbXcdWCOV0d1aSRxnCY7y95gZc2bSDg9RKORPjGF8q4acKkw3/4X9m8ibpQ/Oqa\n3tiZfMDn5cITR3Lrl76c8GTh+PwCjs9ve9XP1ipqawl4vQnvD9hZU3VUz3VIJLwF9k4DYtcOnCqo\nupFI04eI/3MkK/5Eor0BJGsS5P8RPfib6DsAXwmSdwMSSOlcDpMinS3+dwNPicg1wDbgUgARKQPm\nqeq1wEjgARGJEL3AfLeqrunkcRPK65/LLQ99m1se+vZRfd8fbn8irmFLY10jz/xqEV+97WICdhG4\n17pj6ass2bSRJsc5XGgffGclQ/r05dLYap0DsoN4ReKWjQ76/NwzbQZTRnR9Y58RA/ITrv/v83iY\nUDw04feohqHpdXA+Af/JiL/VtYHKWzhc+JurfwjNeQE0QftKyUGyj7z5l8A4JP/ho/lRTJrq1Gwf\nVd2nqmeqakns3/2x/StjhR9VfVNVx6jqybF/H+qK4F1p65rkMzT27baLWb1VYzjMc+vWxM3Drw+H\n+e2qFYe3Lxs1JmGvXZ/Xc1TNYo5Gjt/PDeUTCTZbk98jQo7fz7yy+AYvGt6BVkxBK/8Vrb4L3XcZ\nkQPzUG32jiWc7JxLIbwRcq8FCcKhpSAkBwLlELA7f3ujXnmH79E6rrSY/QmKvCoUHDvAhUSmO9SG\nmpJ269rXrBdASUEBd005i/mvLsHr8aAKuX4/D8+8mECKGrADfKusnKH9+vPAqrepqKtl0pBh3Dhh\nUsIlILTyJojsocWZfeObaO0jSN7V0W0JgCa5buEtwhOcimZNROueBm1AgjNiq3vaDVy9kRV/4MoF\nc1jz5o9bDP1k5WRxyc3n2ZBPLzYgO0h+MMgnB1vOcBGgrNUicReeVMrZny9h1e6dBH1+Thl0bIuO\nWKkyveSEuLuLW1OnAsLriB/SaYD6J+FQ8c++BOofiX8CycUTiHaxk0A5EvhsrSNNz2J/0ol29/rx\nwh8wfPRQxCP0K+zLlQtmc9WCy9yOZlJIRPjx5DPJ9vkOr3l5aGjlB6edEff4HL+f04cNp2xwcbcU\n/o4LQbLlp7XZtaw+88HXei2fLMh/PFXBTBqTuEbmaaKsrExXrlzpdgzTwx26kNvWEsnv7t7F/Sv+\nwdaqSsYNGsT1409leP+jH+7bX1/H4x9+wDuf7OLEgoFcMXZch6Z1dpaqonungrO91VcCkHsVnj63\ntNgbCX0MDS9El2/Omn64mbvpHURklaq2u46HFX/TK9WHQtyx9BUWrl+HE1GG9uvHXVPO4tQhiWfK\ntLZ6z6f8/I1lfPjppxTm5nL9+FO58KTkd9Zur6pi5pOPUh8K0eg4+D1e/F4Pj19yGWOKjumqHysp\nbXofPXBlbMZOY/RirWcQUvA04umT8uOb9GHF32S0a//6LG9s30pjs3nyQZ+P5y67gsLcHLZXVzOs\nb78Wq3AesnZvBbOe+lOLm7qCPh83TZjEN744PuHxrlu8kCWbNsa1fCwtLGLR3K910U/VNnX2ovXP\ngLMDCYyH7GmI2DWrTNPR4m8XfE2vs7O6Oq7wAzQ6DvMWL2RXTTV+r5eQ4zCrdDR3fHlKizH8e5a/\nEbceT304zG/efouvn3wKWb74X5vXt21N2Ot3/d4KGsIhsn2pXzNKvAORvG+l/Dimd7DBPtPrbK+u\nIuCNL9ARVbZUHqDRcTjY1ESj4/CnD99n3AP3cefS16hqiC5b8OGnnyacAqrAp7UHE3wlesNXIh4R\nvDZV0qQhe1WaXuf4/IK4G7cOaV3UFagNhXj0w/e58MnHaAiHGNqvX8LvdSIRCoKJF2SbO2Ys2a3+\n4AS8Xs49/oSEN4gZ4zYr/ialdtfUcP/by1mw9FVe2bQx4ZIFXW1gTg6zRo5qcXdse8vzhSIOFbW1\nLPp4Pd8tn0h2q6GdbJ+PWaWjyU0ya+j68adyxnHDyfL6yAsECPp8jCk6hju/knRdRGNcZRd8Tcos\n27qF6xYvxIkoTRGHHL+fUYVFPHLRpSm9MxaiQzy/f28VD7/7DjVNjUwoHsqWygNsPLC/ze+bXTqa\nu6eew6KP13PnsteobGjA6xHmjh7Lraed0e5Z/ObKA6zbW8Hwfv0ZWZisvUX30PDmaNvF0CrwFCJ5\n85Dsaa5mMqlns32Mq0KOQ/mDv6WqsaHF/qDPx7+fPpnLx5zc7ZlW7trJlc/9mYZwOOGYfpbXyw0T\nJnJd2QQgOn++sqGB3EAg5X+supqGt6H7LgSt48idvx7wnoj0/yniH+1mPJNCHS3+NuxjUuKjij0J\n2w7WxxZTc0PZ4GKemf1VppeckLB/rs/jYVbpkaIoIgwIBntc4QfQg/e3KvxEP3fWovvmEqn/m1vR\nTJqw4m9SwufxoEmWTXOzmJ40sJB7zz2fpVdey/jBxfg9XgJeL58bMIBHL55NYU6ua9m6VGgVCZdv\nBqARqm+PLgFtMpbN8zcpUVpYRN+srLgmKEGfn7mjx7qU6ohj+/ThyVlzqGyop8lxKMrNS/g4JxKh\nLhQiLxDoWV3dvMXgbGvjASFwtkRbM5qMZMXfpIRHhP8570KuePZpwpEITkRBYEbJCcwoOdHteIf1\nzw4m3O9EIvzyrdf54wfv0eQ4DMzJ4YenT+bcNMreFsmdhza9S8uWi81oGCT16w6Z9GXF36TMqKJj\neOuab/Hq5k3sr69nQvFQSgqOrp2hW+56fSlPrP7g8BIPnxw8yPeWvEDf7GxOG5qaBi5dSbImon3v\nhJo7QGtbfdUH/nGI193ZSMZdVvxNSmX7/EzvIWfLh9SHQjy++oO4JR4awmF+vfytHlH8ATw5M4lk\nz4Can0XX9Zes6Bm/rwQZ8Bu34xmXWfE3ppV99XVIktvCtlVXdnOazvF4fNDvh2if70JoDXiLEBvn\nN1jxNyZOUW4engQXdwUoHdgzh0rE0x+yJrkdw6QRm+ppTCsBr5fvlE9osTwEQJbPx80TT3MplTFd\ny878jUngm18Yz8BgLvetWM7eulpKC4u47UtfZnQ3NGYxpjtY8U+gvraBUEOIPvl5PWtut+kyIsIl\npaO4pHSU21GMSQkr/s0crKzll9f8N8sXrwLgmGEDufnB6xh7RqnLyYwxpmvZmH8z82fcxfLFqwg3\nhQk3hdm54RPmT7+LnRt2ux3NGGO6lBX/mM2rt7Hx/a2Em1rO7Q41hXnu3uddSmWMMalhxT/mk817\n8PnjFxxzwg7b1+1yIZExxqSOFf+Yz598HE2Nobj9gWw/o7/Us+5Q7UkiqgkbnxtjUqtTxV9ELhWR\nj0QkIiJJmweIyDQRWS8iG0Tk1s4cM1WKhhUyefYksnKyDu/zeD0E87I5/7pzXEzWO1XU1TJv0UJO\nuv8eTrj3V0x95GHuWf4mu2tq3I5mTEboVCcvERlJdNHwB4BbVDWu9ZaIeIGPgbOAHcAKYK6qttnR\nw41OXo7j8Oyv/8bC+56nrqaB8eeewtU/mUPRsMJuzdHbhSMRznrk9+ysqY5r+JLl9bJg8pnMHjXG\npXTG9Gwd7eTVqameqro2drC2HlYObFDVTbHHPgHMBNxp59QGr9fLrJvPZ9bN57sdpVdbumUze+tq\nE3b6anQcbv/7K0wePiLpGvvGmM7rjjH/YmB7s+0dsX1xROSbIrJSRFZWVFR0QzTjhs2VB2hynKRf\nFxGWbNrYjYmMyTztFn8ReVlEVif4mNnBYyR6W5BwrElVf6eqZapaVlhoQy29VUl+QbutHO0isDGp\n1e6wj6pO7eQxdgBDm20PAWzuZAY7/bjhDO7Tl80H9hNOUORVlbM+93kXkhmTObpj2GcFUCIiI0Qk\nAMwB/toNxzVpyiPC05fO4aKRo/B5oi9BIdr0PcvrZf7pkxmU18fdkMb0cp2d7XMRcC9QCFQC76nq\nOSIyGHhQVafHHjcduAfwAg+r6k/be243ZvsYd/xz3z5e2rQBn0c49/gTGNavv9uRjOmxOjrbp1PF\nP5Ws+BtjzNHraPG3O3yNMSYDWfE3xpgMZMXfGGMykBV/Y4zJQFb8jTEmA1kbR2O6mEYOorX/BfWx\n21mCFyC51yOeXHeDGdOMFX9jupCqg+6/HMIbgabozto/oo1vQsFfELE32yY92CvRmK7UuAycrRwu\n/BD93NkCTf/nUihj4lnxN6YrhdeA1sfv1wYIpd0q5iaDWfE3pit5i0GC8fslO/o1Y9KEjfmbtLev\nro6n16zm4/17OWXQYC46qZS8QMDtWIllnwPVdwP1HFm53ANkQ/bZ7uUyphUr/iatrdtbwWV/foIm\nx6HRcXhxwz+5/+3lLJxzBcfkpV+nL5EgFDyBVn3/yDCPvxTp9x+IZLsbzphmrPibtHbryy9S03Tk\n4ml9OEyT43D3G8v4z3Omu5gsOfENRwqeRiNV0W1PP5cTGRPPir9JW/WhEB9V7Inb76jy6ub0b/No\nRd+kM7vga9KWRwSRRF1AabcNpDGmbVb8TdrK8vn4yvAR+D0tX6ZZXi+zR41xKZUxvYMVf5PWfnbm\n2YwYkE+O30+O30/Q5+OLxxZzQ/lEt6MZ06PZmL9Ja/nBHJ7/6tdZsWsn26oqOWlgIaOLjnE7ljE9\nnhV/k/ZEhPLiIZQXD3E7ijG9hg37GGNMBrLib4wxGciKvzHGZCAr/sYYk4Gs+BtjTAay4m+MMRlI\nVLX9R7lARCqArd1wqIHA3m44TlewrKnTk/Ja1tToSVkhed7jVLWwvW9O2+LfXURkpaqWuZ2jIyxr\n6vSkvJY1NXpSVuh8Xhv2McaYDGTF3xhjMpAVf/id2wGOgmVNnZ6U17KmRk/KCp3Mm/Fj/sYYk4ns\nzN8YYzKQFX9ARO4UkQ9E5D0ReUlEBrudKRkR+YWIrIvlfVZE+rudKRkRuVREPhKRiIik5SwKEZkm\nIutFZIOI3Op2nraIyMMiskdEVrudpT0iMlREXhORtbHXwI1uZ0pGRLJF5G0ReT+WdYHbmdojIl4R\neVdEFn3W57DiH/ULVR2rquOARcCP3A7UhiXAaFUdC3wM3OZynrasBi4GlrkdJBER8QL3A+cCpcBc\nESl1N1Wb/heY5naIDgoD31PVkcCpwPVp/H/bCExR1ZOBccA0ETnV5UztuRFY25knsOIPqGp1s81c\nIG0vhKjqS6oajm0uB9J2kXtVXauq693O0YZyYIOqblLVJuAJYKbLmZJS1WXAfrdzdISq7lbVd2Kf\n1xAtVMXupkpMow7GNv2xj7StASIyBJgBPNiZ57HiHyMiPxWR7cDlpPeZf3NXA8+7HaIHKwa2N9ve\nQZoWqJ5MRIYDpwD/cDdJcrFhlPeAPcASVU3brMA9wL8Bkc48ScYUfxF5WURWJ/iYCaCq81V1KPAY\n8J10zhp7zHyib60fcy9px7KmMUmwL23P+HoiEckDngFuavUOO62oqhMb9h0ClIvIaLczJSIi5wF7\nVHVVZ58rY9o4qurUDj70T8Bi4PYUxmlTe1lF5ErgPOBMdXmu7lH8v6ajHcDQZttDgF0uZel1RMRP\ntPA/pqp/cTtPR6hqpYj8nei1lXS8sH4acIGITAeygb4i8qiqXnG0T5QxZ/5tEZGSZpsXAOvcytIe\nEZkG/AC4QFXr3M7Tw60ASkRkhIgEgDnAX13O1CuIiAAPAWtV9Vdu52mLiBQemjUnIkFgKmlaA1T1\nNlUdoqrDib5eX/0shR+s+B9yd2yo4gPgbKJX0tPVfUAfYElsaupv3Q6UjIhcJCI7gInAYhF50e1M\nzcUunH8HeJHoBcmnVPUjd1MlJyKPA28BJ4rIDhG5xu1MbTgN+BowJfY6fS92tpqOjgVei/3+ryA6\n5v+Zp1D2FHaHrzHGZCA78zfGmAxkxd8YYzKQFX9jjMlAVvyNMSYDWfE3xpgMZMXfGGMykBV/Y4zJ\nQFb8jTEmA/0/vKLErMpELogAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f83c07f19e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(reducedData[:,0],reducedData[:,1], c = target)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n",
       "    n_clusters=3, n_init=10, n_jobs=1, precompute_distances='auto',\n",
       "    random_state=None, tol=0.0001, verbose=0)"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kmeans = KMeans(n_clusters = 3) # porque sabemos que temos tres valores de target\n",
    "kmeans.fit(reducedData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "kMeansPrediction = kmeans.predict(reducedData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Completeness for kMeans with 3 clusters: 0.7474865805095325\n",
      "Homogeneity for kMeans with 3 clusers: 0.736419288125285\n"
     ]
    }
   ],
   "source": [
    "completeness_score = metrics.completeness_score(target, kMeansPrediction)\n",
    "homogeneity_score = metrics.homogeneity_score(target, kMeansPrediction)\n",
    "\n",
    "print('Completeness for kMeans with 3 clusters: {0}'.format(completeness_score))\n",
    "print('Homogeneity for kMeans with 3 clusers: {0}'.format(homogeneity_score))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "agglomerative = AgglomerativeClustering(n_clusters = 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [],
   "source": [
    "agglomerativePrediction = agglomerative.fit_predict(reducedData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Completeness for agglomerativeClustering with 3 clusters: 0.7859016861703575\n",
      "Homogeneity for agllomerativeClustering with 3 clusers: 0.7695955651465263\n"
     ]
    }
   ],
   "source": [
    "completeness_score = metrics.completeness_score(target, agglomerativePrediction)\n",
    "homogeneity_score = metrics.homogeneity_score(target, agglomerativePrediction)\n",
    "\n",
    "print('Completeness for agglomerativeClustering with 3 clusters: {0}'.format(completeness_score))\n",
    "print('Homogeneity for agllomerativeClustering with 3 clusers: {0}'.format(homogeneity_score))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def elbow(data, target, limit):\n",
    "    sqErrorList = []\n",
    "    for i in range(1, limit):\n",
    "        toFitData = list(data)\n",
    "        kmeans = KMeans(n_clusters = i)\n",
    "        kmeans.fit(toFitData)\n",
    "        predictions = kmeans.predict(data)\n",
    "        error = metrics.mean_squared_error(target, predictions)\n",
    "        sqErrorList.append(error)\n",
    "    return sqErrorList"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [],
   "source": [
    "errors = elbow(reducedData, target, 11) # testes de 1 a 10 clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f83c08474e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(1, 11), errors)\n",
    "plt.xlabel('clusters')\n",
    "plt.ylabel('squared error')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Completeness for kMeans with 3 clusters: 0.7474865805095324\n",
      "Homogeneity for kMeans with 3 clusers: 0.7364192881252849\n",
      "\n",
      "Completeness for kMeans with 4 clusters: 0.6370263403041437\n",
      "Homogeneity for kMeans with 4 clusers: 0.7803356010612768\n"
     ]
    }
   ],
   "source": [
    "# testes com os dois melhores valores para os clusters: 3 e 4\n",
    "\n",
    "kmeans = KMeans(n_clusters = 3)\n",
    "kmeans.fit(reducedData)\n",
    "\n",
    "kMeansPrediction = kmeans.predict(reducedData)\n",
    "\n",
    "completeness_score = metrics.completeness_score(target, kMeansPrediction)\n",
    "homogeneity_score = metrics.homogeneity_score(target, kMeansPrediction)\n",
    "\n",
    "print('Completeness for kMeans with 3 clusters: {0}'.format(completeness_score))\n",
    "print('Homogeneity for kMeans with 3 clusers: {0}\\n'.format(homogeneity_score))\n",
    "\n",
    "kmeans = KMeans(n_clusters = 4)\n",
    "kmeans.fit(reducedData)\n",
    "\n",
    "kMeansPrediction = kmeans.predict(reducedData)\n",
    "\n",
    "completeness_score = metrics.completeness_score(target, kMeansPrediction)\n",
    "homogeneity_score = metrics.homogeneity_score(target, kMeansPrediction)\n",
    "\n",
    "print('Completeness for kMeans with 4 clusters: {0}'.format(completeness_score))\n",
    "print('Homogeneity for kMeans with 4 clusers: {0}'.format(homogeneity_score))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
